1. Field of the Invention
The present invention is related to processing systems and networks, and more specifically to techniques for allocating resources in such systems using a multi-dimensional bin-packing algorithm that tries combinations of remaining resources at each branch.
2. Description of Related Art
In networked and distributed computing systems, as well as other multi-threaded, multi-tasking or multiple-customer computing systems, resources may vary between individual nodes and devices both by type and amount. Systems management software typically manages allocation of such resources, in order to meet the requirement of executing all of the tasks required of the system within resource constraints of the system, or to minimize power consumption of the system by placing some of the resources in a low-power operating state.
A class of algorithms known as bin-packing algorithms can be used to determine efficient assignment of resources as between tasks and “bins”, which correspond to local resources that can be used to execute a task, e.g., those resources available in a computing node or group. Of particular interest are multi-dimensional bin-packing algorithms, since the mapping of resources to tasks is not a one-dimensional problem, since memory requirements, computing throughput, I/O capability, processor architecture types, and other considerations for executing tasks may be orthogonal requirements.
While multi-dimensional bin-packing algorithms exist that can solve such problems, it is desirable to provide a method for allocating systems resources that can efficiently perform such allocation without undue waste of the systems resources.